package com.snow.service.meta;

import com.snow.pojo.dto.MetaDto;
import com.snow.pojo.dto.cond.MetaCond;
import com.snow.pojo.model.MetaDomain;

import java.util.List;

/**
 * @Description:
 * @author: snow
 * @Date: 2020-01-22
 **/
public interface MetaService {
    /**
     * 添加一个项目
     * @param metaDomain
     * @return
     */
    int addMeta(MetaDomain metaDomain);

    /**
     * 为某一项目新添内容
     * @param name
     * @param type
     * @param mid
     * @return
     */
    int saveMeta(String name,String type,Integer mid);

    /**
     * 批量添加项目
     * @param cid
     * @param names
     * @param type
     * @return
     */
    void addMetas(Integer cid,String names,String type);

    /**
     * 更新或保存文章标签或分类
     * @param name
     * @param type
     * @param cid
     * @return
     */
    void saveOrUpdate(String name,String type,Integer cid);

    /**
     * 删除项目
     * @param mid
     * @return
     */
    void deleteMetaById(Integer mid);

    /**
     * 根据编号获取Meta
     * @param mid
     * @return
     */
    MetaDomain getMetaById(Integer mid);

    /**
     * 根据查询条件获取meta
     * @param metaCond
     * @return
     */
    List<MetaDomain> getMetasByCond(MetaCond metaCond);

    /**
     * 获取某类型的项目，每个带项目下的文章数
     * @param type
     * @param orderBy
     * @param limit
     * @return
     */
    List<MetaDto> getMetasByType(String type, String orderBy, Integer limit);
}
